a.exe:main.cpp common.o bmp.o object.o camera.o scene.o raytracer.o complexObj.o
	g++ main.cpp common.o bmp.o object.o camera.o scene.o raytracer.o complexObj.o -o a2.exe -O3 
	
common.o: common.h common.cpp
	g++ -c common.cpp -O3

bmp.o: bmp.h bmp.cpp
	g++ -c bmp.cpp -O3

object.o: object.h object.cpp
	g++ -c object.cpp -O3

camera.o: camera.h camera.cpp
	g++ -c camera.cpp -O3

scene.o: scene.h scene.cpp
	g++ -c scene.cpp -O3

raytracer.o: raytracer.h raytracer.cpp
	g++ -c raytracer.cpp -O3

complexObj.o: complexObj.h complexObj.cpp
	g++ -c complexObj.cpp -O3
	


clear:
	del *.bak *.o